1 Extreme wildfire risk: KBDI ≥ 600

1.1 Descriptive statistics, aggregate

N wells in high wildfire risk areas (i.e., areas with KBDI ≥ 600):

  • 2017: 192356
  • 2050: 196600
  • 2090: 282512

1.2 Results, 2017 wildfire risk

Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by county

Table. Wells in high wildfire risk areas by operator

1.3 Results, 2050 wildfire risk

Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by county

Table. Wells in high wildfire risk areas by operator

1.4 Results, 2090 wildfire risk

Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by county

Table. Wells in high wildfire risk areas by operator

2 High wildfire risk: KBDI ≥ 450

2.1 Descriptive statistics, aggregate

N wells in high wildfire risk areas (i.e., areas with KBDI ≥ 450):

  • 2017: 634645
  • 2050: 905415
  • 2090: 1280401

2.2 Results, 2017 wildfire risk

Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by county

Table. Wells in high wildfire risk areas by operator

2.3 Results, 2050 wildfire risk

Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by county

Table. Wells in high wildfire risk areas by operator

2.4 Results, 2090 wildfire risk

Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by county

Table. Wells in high wildfire risk areas by operator

3 High wildfire risk: KBDI ≥ 400

3.1 Descriptive statistics, aggregate

N wells in high wildfire risk areas (i.e., areas with KBDI ≥ 400):

  • 2017: 833828
  • 2050: 1306675
  • 2090: 1533977

3.2 Results, 2017 wildfire risk

Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by county

Table. Wells in high wildfire risk areas by operator

3.3 Results, 2050 wildfire risk

Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by county

Table. Wells in high wildfire risk areas by operator

3.4 Results, 2090 wildfire risk

Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by county

Table. Wells in high wildfire risk areas by operator

LS0tCnRpdGxlOiAiUmVzdWx0czogV2lsZGZpcmVzIGluIGFyZWFzIHdpdGggcHJvamVjdGVkIHdpbGRmaXJlIHJpc2siCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdGhlbWU6IGZsYXRseQogICAgaGlnaGxpZ2h0OiBoYWRkb2NrIAogICAgdG9jOiB5ZXMKICAgIHRvY19kZXB0aDogMgogICAgdG9jX2Zsb2F0OiB5ZXMKICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQotLS0KCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQojIGxvYWRzIG5lY2Vzc2FyeSBwYWNrYWdlcyBhbmQgZGVmaW5lcyBnbG9iYWwgdmFyaWFibGVzCnNvdXJjZSgiLi4vLi4vY29kZS8wLXNldHVwLzAxLXNldHVwLlIiKQpsaWJyYXJ5KCJ2aXJpZGlzIikKYGBgCgpgYGB7ciBkYXRhX2lucHV0LCBpbmNsdWRlPUZBTFNFfQp3ZWxsc19rYmRpIDwtIHJlYWRSRFMoIi4uLy4uL2RhdGEvcHJvY2Vzc2VkL3dlbGxzX2tiZGkucmRzIikKc3R1ZHlfcmVnaW9uX3NmIDwtIHJlYWRSRFMoIi4uLy4uL2RhdGEvaW50ZXJpbS9zdHVkeV9yZWdpb25fc2YucmRzIikKa2JkaV9tYXhfMjAxN19zZiA8LSByZWFkUkRTKCIuLi8uLi9kYXRhL3Byb2Nlc3NlZC9rYmRpX21heF8yMDE3LnJkcyIpICU+JSAKICBhc190aWJibGUoKSAlPiUKICBzdF9hc19zZihjb29yZHMgPSBjKCJ4IiwgInkiKSwgY3JzID0gY3JzX25hZDgzKSAlPiUgCiAgc3RfaW50ZXJzZWN0aW9uKHN0dWR5X3JlZ2lvbl9zZikKa2JkaV9tYXhfMjA1MF9zZiA8LSByZWFkUkRTKCIuLi8uLi9kYXRhL3Byb2Nlc3NlZC9rYmRpX21heF8yMDUwLnJkcyIpICU+JSAKICBhc190aWJibGUoKSAlPiUKICBzdF9hc19zZihjb29yZHMgPSBjKCJ4IiwgInkiKSwgY3JzID0gY3JzX25hZDgzKSAlPiUgCiAgc3RfaW50ZXJzZWN0aW9uKHN0dWR5X3JlZ2lvbl9zZikKa2JkaV9tYXhfMjA5MF9zZiA8LSByZWFkUkRTKCIuLi8uLi9kYXRhL3Byb2Nlc3NlZC9rYmRpX21heF8yMDkwLnJkcyIpICU+JSAKICBhc190aWJibGUoKSAlPiUKICBzdF9hc19zZihjb29yZHMgPSBjKCJ4IiwgInkiKSwgY3JzID0gY3JzX25hZDgzKSAlPiUKICBzdF9pbnRlcnNlY3Rpb24oc3R1ZHlfcmVnaW9uX3NmKQp1c19zdGF0ZXNfd2VzdCA8LSBzdF9yZWFkKCIuLi8uLi9kYXRhL3Jhdy91c19jZW5zdXMvdGxfMjAxOF91c19zdGF0ZS5zaHAiKSAlPiUgCiAgZmlsdGVyKFNUVVNQUyAlaW4lIGMoIldBIiwgIk9SIiwgIkNBIiwgIklEIiwgIk5WIiwgIkFaIiwgIk1UIiwgIldZIiwKICAgICAgICAgICAgICAgICAgICAgICAiVVQiLCAiQ08iLCAiTk0iLCAiTkQiLCAiU0QiLCAiTkUiLCAiS1MiLCAiT0siLCAiVFgiLAogICAgICAgICAgICAgICAgICAgICAgICJNTiIsICJJQSIsICJNTyIsICJBUiIsICJMQSIpKSAlPiUKICBzdF9nZW9tZXRyeSgpICU+JQogIHN0X3RyYW5zZm9ybShjcnNfbmFkODMpCnJtKHN0dWR5X3JlZ2lvbl9zZikKYGBgCgoKIyBFeHRyZW1lIHdpbGRmaXJlIHJpc2s6IEtCREkg4omlIDYwMAoKIyMgRGVzY3JpcHRpdmUgc3RhdGlzdGljcywgYWdncmVnYXRlCgpOIHdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyAoaS5lLiwgYXJlYXMgd2l0aCBLQkRJIOKJpSA2MDApOgoKLSAyMDE3OiBgciB3ZWxsc19rYmRpICU+JSBmaWx0ZXIoa2JkaV9tYXhfMjAxNyA+PSA2MDApICU+JSBucm93YAotIDIwNTA6IGByIHdlbGxzX2tiZGkgJT4lIGZpbHRlcihrYmRpX21heF8yMDUwID49IDYwMCkgJT4lIG5yb3dgCi0gMjA5MDogYHIgd2VsbHNfa2JkaSAlPiUgZmlsdGVyKGtiZGlfbWF4XzIwOTAgPj0gNjAwKSAlPiUgbnJvd2AKCgojIyBSZXN1bHRzLCAyMDE3IHdpbGRmaXJlIHJpc2sKCioqUGxvdC4gS0JESSBpbiBzdHVkeSByZWdpb24qKgoKYGBge3IgZWNobz1GQUxTRX0KZ2dwbG90KCkgKwogIGdlb21fc2YoZGF0YSA9IGtiZGlfbWF4XzIwMTdfc2YsIGFlcyhjb2xvciA9IGtiZGlfbWF4XzIwMTcpKSArCiAgc2NhbGVfY29sb3JfdmlyaWRpcyhvcHRpb24gPSAiQiIpICsKICBnZW9tX3NmKGRhdGEgPSB1c19zdGF0ZXNfd2VzdCwgY29sb3IgPSAid2hpdGUiLCBmaWxsID0gTkEpICsKICBsYWJzKGNvbG9yID0gIktCREkiKSArCiAgdGhlbWVfbWluaW1hbCgpCmBgYAoKCioqUGxvdC4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IHN0YXRlKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDE3ID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KHN0YXRlKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBnZ3Bsb3QoKSArCiAgZ2VvbV9iYXIoYWVzKHN0YXRlLCBuKSwgc3RhdCA9ICJpZGVudGl0eSIpICsKICB0aGVtZV9jbGFzc2ljKCkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgc3RhdGUqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwMTcgPj0gNjAwKSAlPiUgCiAgZ3JvdXBfYnkoc3RhdGUpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgY291bnR5KioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDE3ID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KGNvdW50eV9wYXJpc2gpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgb3BlcmF0b3IqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwMTcgPj0gNjAwKSAlPiUgCiAgZ3JvdXBfYnkob3BlcmF0b3IpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoKIyMgUmVzdWx0cywgMjA1MCB3aWxkZmlyZSByaXNrCgoqKlBsb3QuIEtCREkgaW4gc3R1ZHkgcmVnaW9uKioKCmBgYHtyIGVjaG89RkFMU0V9CmdncGxvdCgpICsKICBnZW9tX3NmKGRhdGEgPSBrYmRpX21heF8yMDUwX3NmLCBhZXMoY29sb3IgPSBrYmRpX21heF8yMDUwKSkgKwogIHNjYWxlX2NvbG9yX3ZpcmlkaXMob3B0aW9uID0gIkIiKSArCiAgZ2VvbV9zZihkYXRhID0gdXNfc3RhdGVzX3dlc3QsIGNvbG9yID0gIndoaXRlIiwgZmlsbCA9IE5BKSArCiAgbGFicyhjb2xvciA9ICJLQkRJIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKCioqUGxvdC4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IHN0YXRlKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDUwID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KHN0YXRlKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBnZ3Bsb3QoKSArCiAgZ2VvbV9iYXIoYWVzKHN0YXRlLCBuKSwgc3RhdCA9ICJpZGVudGl0eSIpICsKICB0aGVtZV9jbGFzc2ljKCkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgc3RhdGUqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwNTAgPj0gNjAwKSAlPiUgCiAgZ3JvdXBfYnkoc3RhdGUpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgY291bnR5KioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDUwID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KGNvdW50eV9wYXJpc2gpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgb3BlcmF0b3IqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwNTAgPj0gNjAwKSAlPiUgCiAgZ3JvdXBfYnkob3BlcmF0b3IpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoKIyMgUmVzdWx0cywgMjA5MCB3aWxkZmlyZSByaXNrCgoqKlBsb3QuIEtCREkgaW4gc3R1ZHkgcmVnaW9uKioKCmBgYHtyIGVjaG89RkFMU0V9CmdncGxvdCgpICsKICBnZW9tX3NmKGRhdGEgPSBrYmRpX21heF8yMDkwX3NmLCBhZXMoY29sb3IgPSBrYmRpX21heF8yMDkwKSkgKwogIHNjYWxlX2NvbG9yX3ZpcmlkaXMob3B0aW9uID0gIkIiKSArCiAgZ2VvbV9zZihkYXRhID0gdXNfc3RhdGVzX3dlc3QsIGNvbG9yID0gIndoaXRlIiwgZmlsbCA9IE5BKSArCiAgbGFicyhjb2xvciA9ICJLQkRJIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKCioqUGxvdC4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IHN0YXRlKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDkwID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KHN0YXRlKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBnZ3Bsb3QoKSArCiAgZ2VvbV9iYXIoYWVzKHN0YXRlLCBuKSwgc3RhdCA9ICJpZGVudGl0eSIpICsKICB0aGVtZV9jbGFzc2ljKCkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgc3RhdGUqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwOTAgPj0gNjAwKSAlPiUgCiAgZ3JvdXBfYnkoc3RhdGUpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgY291bnR5KioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDkwID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KGNvdW50eV9wYXJpc2gpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgb3BlcmF0b3IqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwOTAgPj0gNjAwKSAlPiUgCiAgZ3JvdXBfYnkob3BlcmF0b3IpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgojIEhpZ2ggd2lsZGZpcmUgcmlzazogS0JESSDiiaUgNDUwCgojIyBEZXNjcmlwdGl2ZSBzdGF0aXN0aWNzLCBhZ2dyZWdhdGUKCk4gd2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIChpLmUuLCBhcmVhcyB3aXRoIEtCREkg4omlIDQ1MCk6CgotIDIwMTc6IGByIHdlbGxzX2tiZGkgJT4lIGZpbHRlcihrYmRpX21heF8yMDE3ID49IDQ1MCkgJT4lIG5yb3dgCi0gMjA1MDogYHIgd2VsbHNfa2JkaSAlPiUgZmlsdGVyKGtiZGlfbWF4XzIwNTAgPj0gNDUwKSAlPiUgbnJvd2AKLSAyMDkwOiBgciB3ZWxsc19rYmRpICU+JSBmaWx0ZXIoa2JkaV9tYXhfMjA5MCA+PSA0NTApICU+JSBucm93YAoKCiMjIFJlc3VsdHMsIDIwMTcgd2lsZGZpcmUgcmlzawoKKipQbG90LiBLQkRJIGluIHN0dWR5IHJlZ2lvbioqCgpgYGB7ciBlY2hvPUZBTFNFfQpnZ3Bsb3QoKSArCiAgZ2VvbV9zZihkYXRhID0ga2JkaV9tYXhfMjAxN19zZiwgYWVzKGNvbG9yID0ga2JkaV9tYXhfMjAxNykpICsKICBzY2FsZV9jb2xvcl92aXJpZGlzKG9wdGlvbiA9ICJCIikgKwogIGdlb21fc2YoZGF0YSA9IHVzX3N0YXRlc193ZXN0LCBjb2xvciA9ICJ3aGl0ZSIsIGZpbGwgPSBOQSkgKwogIGxhYnMoY29sb3IgPSAiS0JESSIpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgoqKlBsb3QuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBzdGF0ZSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjAxNyA+PSA0NTApICU+JSAKICBncm91cF9ieShzdGF0ZSkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgZ2dwbG90KCkgKwogIGdlb21fYmFyKGFlcyhzdGF0ZSwgbiksIHN0YXQgPSAiaWRlbnRpdHkiKSArCiAgdGhlbWVfY2xhc3NpYygpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IHN0YXRlKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDE3ID49IDQ1MCkgJT4lIAogIGdyb3VwX2J5KHN0YXRlKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IGNvdW50eSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjAxNyA+PSA0NTApICU+JSAKICBncm91cF9ieShjb3VudHlfcGFyaXNoKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IG9wZXJhdG9yKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDE3ID49IDQ1MCkgJT4lIAogIGdyb3VwX2J5KG9wZXJhdG9yKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKIyMgUmVzdWx0cywgMjA1MCB3aWxkZmlyZSByaXNrCgoqKlBsb3QuIEtCREkgaW4gc3R1ZHkgcmVnaW9uKioKCmBgYHtyIGVjaG89RkFMU0V9CmdncGxvdCgpICsKICBnZW9tX3NmKGRhdGEgPSBrYmRpX21heF8yMDUwX3NmLCBhZXMoY29sb3IgPSBrYmRpX21heF8yMDUwKSkgKwogIHNjYWxlX2NvbG9yX3ZpcmlkaXMob3B0aW9uID0gIkIiKSArCiAgZ2VvbV9zZihkYXRhID0gdXNfc3RhdGVzX3dlc3QsIGNvbG9yID0gIndoaXRlIiwgZmlsbCA9IE5BKSArCiAgbGFicyhjb2xvciA9ICJLQkRJIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKCioqUGxvdC4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IHN0YXRlKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDUwID49IDQ1MCkgJT4lIAogIGdyb3VwX2J5KHN0YXRlKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBnZ3Bsb3QoKSArCiAgZ2VvbV9iYXIoYWVzKHN0YXRlLCBuKSwgc3RhdCA9ICJpZGVudGl0eSIpICsKICB0aGVtZV9jbGFzc2ljKCkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgc3RhdGUqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwNTAgPj0gNDUwKSAlPiUgCiAgZ3JvdXBfYnkoc3RhdGUpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgY291bnR5KioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDUwID49IDQ1MCkgJT4lIAogIGdyb3VwX2J5KGNvdW50eV9wYXJpc2gpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgb3BlcmF0b3IqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwNTAgPj0gNDUwKSAlPiUgCiAgZ3JvdXBfYnkob3BlcmF0b3IpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoKIyMgUmVzdWx0cywgMjA5MCB3aWxkZmlyZSByaXNrCgoqKlBsb3QuIEtCREkgaW4gc3R1ZHkgcmVnaW9uKioKCmBgYHtyIGVjaG89RkFMU0V9CmdncGxvdCgpICsKICBnZW9tX3NmKGRhdGEgPSBrYmRpX21heF8yMDkwX3NmLCBhZXMoY29sb3IgPSBrYmRpX21heF8yMDkwKSkgKwogIHNjYWxlX2NvbG9yX3ZpcmlkaXMob3B0aW9uID0gIkIiKSArCiAgZ2VvbV9zZihkYXRhID0gdXNfc3RhdGVzX3dlc3QsIGNvbG9yID0gIndoaXRlIiwgZmlsbCA9IE5BKSArCiAgbGFicyhjb2xvciA9ICJLQkRJIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKKipQbG90LiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgc3RhdGUqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwOTAgPj0gNDUwKSAlPiUgCiAgZ3JvdXBfYnkoc3RhdGUpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGdncGxvdCgpICsKICBnZW9tX2JhcihhZXMoc3RhdGUsIG4pLCBzdGF0ID0gImlkZW50aXR5IikgKwogIHRoZW1lX2NsYXNzaWMoKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBzdGF0ZSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjA5MCA+PSA0NTApICU+JSAKICBncm91cF9ieShzdGF0ZSkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgYXJyYW5nZShkZXNjKG4pKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBjb3VudHkqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwOTAgPj0gNDUwKSAlPiUgCiAgZ3JvdXBfYnkoY291bnR5X3BhcmlzaCkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgYXJyYW5nZShkZXNjKG4pKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBvcGVyYXRvcioqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjA5MCA+PSA0NTApICU+JSAKICBncm91cF9ieShvcGVyYXRvcikgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgYXJyYW5nZShkZXNjKG4pKQpgYGAKCgojIEhpZ2ggd2lsZGZpcmUgcmlzazogS0JESSDiiaUgNDAwCgojIyBEZXNjcmlwdGl2ZSBzdGF0aXN0aWNzLCBhZ2dyZWdhdGUKCk4gd2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIChpLmUuLCBhcmVhcyB3aXRoIEtCREkg4omlIDQwMCk6CgotIDIwMTc6IGByIHdlbGxzX2tiZGkgJT4lIGZpbHRlcihrYmRpX21heF8yMDE3ID49IDQwMCkgJT4lIG5yb3dgCi0gMjA1MDogYHIgd2VsbHNfa2JkaSAlPiUgZmlsdGVyKGtiZGlfbWF4XzIwNTAgPj0gNDAwKSAlPiUgbnJvd2AKLSAyMDkwOiBgciB3ZWxsc19rYmRpICU+JSBmaWx0ZXIoa2JkaV9tYXhfMjA5MCA+PSA0MDApICU+JSBucm93YAoKCiMjIFJlc3VsdHMsIDIwMTcgd2lsZGZpcmUgcmlzawoKKipQbG90LiBLQkRJIGluIHN0dWR5IHJlZ2lvbioqCgpgYGB7ciBlY2hvPUZBTFNFfQpnZ3Bsb3QoKSArCiAgZ2VvbV9zZihkYXRhID0ga2JkaV9tYXhfMjAxN19zZiwgYWVzKGNvbG9yID0ga2JkaV9tYXhfMjAxNykpICsKICBzY2FsZV9jb2xvcl92aXJpZGlzKG9wdGlvbiA9ICJCIikgKwogIGdlb21fc2YoZGF0YSA9IHVzX3N0YXRlc193ZXN0LCBjb2xvciA9ICJ3aGl0ZSIsIGZpbGwgPSBOQSkgKwogIGxhYnMoY29sb3IgPSAiS0JESSIpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgoqKlBsb3QuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBzdGF0ZSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjAxNyA+PSA0MDApICU+JSAKICBncm91cF9ieShzdGF0ZSkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgZ2dwbG90KCkgKwogIGdlb21fYmFyKGFlcyhzdGF0ZSwgbiksIHN0YXQgPSAiaWRlbnRpdHkiKSArCiAgdGhlbWVfY2xhc3NpYygpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IHN0YXRlKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDE3ID49IDQwMCkgJT4lIAogIGdyb3VwX2J5KHN0YXRlKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IGNvdW50eSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjAxNyA+PSA0MDApICU+JSAKICBncm91cF9ieShjb3VudHlfcGFyaXNoKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IG9wZXJhdG9yKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDE3ID49IDQwMCkgJT4lIAogIGdyb3VwX2J5KG9wZXJhdG9yKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKIyMgUmVzdWx0cywgMjA1MCB3aWxkZmlyZSByaXNrCgoqKlBsb3QuIEtCREkgaW4gc3R1ZHkgcmVnaW9uKioKCmBgYHtyIGVjaG89RkFMU0V9CmdncGxvdCgpICsKICBnZW9tX3NmKGRhdGEgPSBrYmRpX21heF8yMDUwX3NmLCBhZXMoY29sb3IgPSBrYmRpX21heF8yMDUwKSkgKwogIHNjYWxlX2NvbG9yX3ZpcmlkaXMob3B0aW9uID0gIkIiKSArCiAgZ2VvbV9zZihkYXRhID0gdXNfc3RhdGVzX3dlc3QsIGNvbG9yID0gIndoaXRlIiwgZmlsbCA9IE5BKSArCiAgbGFicyhjb2xvciA9ICJLQkRJIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKCioqUGxvdC4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IHN0YXRlKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDUwID49IDQwMCkgJT4lIAogIGdyb3VwX2J5KHN0YXRlKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBnZ3Bsb3QoKSArCiAgZ2VvbV9iYXIoYWVzKHN0YXRlLCBuKSwgc3RhdCA9ICJpZGVudGl0eSIpICsKICB0aGVtZV9jbGFzc2ljKCkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgc3RhdGUqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwNTAgPj0gNDAwKSAlPiUgCiAgZ3JvdXBfYnkoc3RhdGUpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgY291bnR5KioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDUwID49IDQwMCkgJT4lIAogIGdyb3VwX2J5KGNvdW50eV9wYXJpc2gpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgb3BlcmF0b3IqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwNTAgPj0gNDAwKSAlPiUgCiAgZ3JvdXBfYnkob3BlcmF0b3IpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoKIyMgUmVzdWx0cywgMjA5MCB3aWxkZmlyZSByaXNrCgoqKlBsb3QuIEtCREkgaW4gc3R1ZHkgcmVnaW9uKioKCmBgYHtyIGVjaG89RkFMU0V9CmdncGxvdCgpICsKICBnZW9tX3NmKGRhdGEgPSBrYmRpX21heF8yMDkwX3NmLCBhZXMoY29sb3IgPSBrYmRpX21heF8yMDkwKSkgKwogIHNjYWxlX2NvbG9yX3ZpcmlkaXMob3B0aW9uID0gIkIiKSArCiAgZ2VvbV9zZihkYXRhID0gdXNfc3RhdGVzX3dlc3QsIGNvbG9yID0gIndoaXRlIiwgZmlsbCA9IE5BKSArCiAgbGFicyhjb2xvciA9ICJLQkRJIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKKipQbG90LiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgc3RhdGUqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwOTAgPj0gNDAwKSAlPiUgCiAgZ3JvdXBfYnkoc3RhdGUpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGdncGxvdCgpICsKICBnZW9tX2JhcihhZXMoc3RhdGUsIG4pLCBzdGF0ID0gImlkZW50aXR5IikgKwogIHRoZW1lX2NsYXNzaWMoKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBzdGF0ZSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjA5MCA+PSA0MDApICU+JSAKICBncm91cF9ieShzdGF0ZSkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgYXJyYW5nZShkZXNjKG4pKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBjb3VudHkqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwOTAgPj0gNDAwKSAlPiUgCiAgZ3JvdXBfYnkoY291bnR5X3BhcmlzaCkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgYXJyYW5nZShkZXNjKG4pKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBvcGVyYXRvcioqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjA5MCA+PSA0MDApICU+JSAKICBncm91cF9ieShvcGVyYXRvcikgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgYXJyYW5nZShkZXNjKG4pKQpgYGAKCg==